home *** CD-ROM | disk | FTP | other *** search
- Path: xanth!cs.odu.edu!Amiga-Request
- From: Amiga-Request@cs.odu.edu (Amiga Sources/Binaries Moderator)
- Newsgroups: comp.sources.amiga
- Subject: v90i058: uucp 1.03D - unix compatible uucp/mail/news system, Part14/16
- Message-ID: <11297@xanth.cs.odu.edu>
- Date: 4 Feb 90 02:42:49 GMT
- Sender: tadguy@cs.odu.edu
- Reply-To: overload!dillon (Matt Dillon)
- Lines: 1186
- Approved: tadguy@cs.odu.edu (Tad Guy)
- X-Mail-Submissions-To: Amiga@cs.odu.edu
-
- Submitted-by: overload!dillon (Matt Dillon)
- Posting-number: Volume 90, Issue 058
- Archive-name: unix/uucp-1.03d/part14
-
- #!/bin/sh
- # This is a shell archive. Remove anything before this line, then unpack
- # it by saving it into a file and typing "sh file". To overwrite existing
- # files, type "sh file -c". You can also feed this as standard input via
- # unshar, or by typing "sh <file", e.g.. If this archive is complete, you
- # will see the following message at the end:
- # "End of archive 14 (of 16)."
- # Contents: man/dme.doc
- # Wrapped by tadguy@xanth on Sat Feb 3 20:51:23 1990
- PATH=/bin:/usr/bin:/usr/ucb ; export PATH
- if test -f 'man/dme.doc' -a "${1}" != "-c" ; then
- echo shar: Will not clobber existing file \"'man/dme.doc'\"
- else
- echo shar: Extracting \"'man/dme.doc'\" \(44056 characters\)
- sed "s/^X//" >'man/dme.doc' <<'END_OF_FILE'
- X
- XDME.DOC DME version 1.39 Matthew Dillon
- X 4 November 1989
- X
- XDME, (C)Copyright 1987-89, Matthew Dillon. All Rights Reserved.
- XThis software may be distributed for non-profit only. This software is
- XFREEWARE, not shareware.
- X
- X Matthew Dillon
- X 891 Regal Rd
- X Berkeley, California 94708
- X USA
- X
- X Source is avalable:
- X
- X (1) By anonymous FTP to UCBVAX.BERKELEY.EDU (ARPANET)
- X (2) By regular mail (send a disk)
- X (3) By Electronic mail:
- X ARPANET: dillon@ucbvax.berkeley.edu
- X USENET: ...!ihnp4!ucbvax!dillon
- X (may take a while for me to respond)
- X
- X
- X Donations welcome but not solicited (I ain't a starving artist).
- X
- X icon by Bryce Nesbitt
- X
- X text markers and the text-block stack by Kevin Seghetti (some of the new
- X commands for 1.30).
- X
- X AREXX interface (Bill Hawes' ARexx REXX language interpreter) ported
- X by Kim DeVaughn
- X
- X
- X---------------------------------------------------------------------------
- X
- X0 Installation
- XI Overview
- XII Keymapping key and mouse mapping
- XIII Command Sequences DME commands
- XIV File Particulars notes on loading and saving files,
- XV Workbench Support
- XVI Revision Summary revision numbering, changes made, etc...
- XVII Compiling compiling instructions
- X
- X 0
- X INSTALLATION
- X
- XThe NULL: device must be mounted to be able to use the EXECUTE command.
- XThis is so EXECUTE works even if the console window goes away. Otherwise,
- Xsimply put DME in an accessable location (usually C:). Put the dme.icon
- Xfile in the same directory as DME if you want to access the application
- Xfrom the workbench (dme.icon is not needed if accessed from a CLI or shell).
- X
- XPeople appear to have problems using the EXECUTE command when DME is run
- Xfrom the workbench. I have no solution yet.
- X
- XThe CONFIG program may be used to configure the default window placement,
- Xsize, and color. This program modifies the executble:
- X
- X config c:dme (or wherever you have the executable)
- X
- X
- X I
- X OVERVIEW
- X
- XSee REVISIONS section for revisions. DME is an editor designed mainly for
- Xprogrammers. Although it is not a word processor, it does include many
- Xword processing features such as Word-Wrap and automatic paragraph
- Xformatting. Here is a quick 'features' list:
- X
- X -control language based on a rich command set accessed manually
- X or via arbitrary mapping of keys. (Every key may be mapped to 128
- X different things via qualifier and mouse keys)
- X
- X -General variables, reference macros as variables, ENV: enviroment
- X variables (1.30C and beyond).
- X
- X -fast visual response (it scrolls quickly)... even faster when
- X BlitzFonts or similar text speedup utilities are installed.
- X
- X -title-line statistics showing your current position in the file,
- X file name, whether the file has been modified or not, etc...
- X
- X -Multiple Windows, ability to iconify windows
- X
- X -Word Wrap and automatic paragraph formatting.
- X
- X -ability to map any KEY or MOUSE BUTTON combination.
- X
- XDME has been designed to allow easy expansion, and I intend to make many
- Xfuture improvments. It has not been designed for user friendliness, but is
- Xstraight forward if you read this document [care]fully.
- X
- XDME can take any number of arguments. Any argument without a '-' in front
- Xof it is considered to be a file. Normally, DME will automatically SOURCE
- Xtwo script files, S:.EDRC, and the .EDRC in your current directory. These
- Xfiles do not have to exist. These script files usually contain mappings
- Xand do things (for example, turn on savetabs).
- X
- X FLAGS:
- X -ffilename -source this script file instead of .EDRC
- X
- X -b -normally when multiple files are specified,
- X DME opens them with small windows. This opens
- X them with normal sized windows.
- X
- X -tN -Open the window on scan line N
- X -lN -Open the window offset N scan columns
- X -wN -Make the window N pixels wide
- X -hN -Make the window N pixels high
- X
- X
- X
- X II
- X KEYMAPPING
- X
- XMOUSE BUTTONS:
- X
- X The mouse buttons and combinations thereof may now be mapped. The
- X default mappings for the mouse buttons are as follows:
- X
- X Left-button: Move cursor to current mouse position
- X Right-button: Iconify window
- X Left-button held down while moving mouse tracks the cursor
- X
- X The iconification features:
- X -Remembers original window size and placement
- X -Remembers placement of iconified window when you re-iconify later.
- X
- X Currently, you will crash the machine if you run out of memory and DME
- X is unable to open the icon window or original window, so be careful.
- X
- X see below for mapping the mouse buttons and mouse movement.
- X
- X
- XKEYBOARD:
- X
- XThe rest of the Functional interface for DME is based on key/mouse mappings
- Xand a rich command set. Unlike other text editors, any non-qualifier key
- Xin DME may have any meaning whatsoever. It just so happens that the
- Xdefault keymappings assign such things as the (return) key to the RETURN
- Xfunction, the (up) key to the UP function, etc... Keys are named by their
- Xkeycap labels with the following exceptions:
- X
- X the name for Back-Space is BS
- X the name for numeric keypad keys are prepended with an NK, except for
- X the Enter key which is named 'ENTER'.
- X The four cursor control keys are labeled UP, DOWN, LEFT, and RIGHT
- X The three mouse buttons are labeled RMB, MMB, and LMB.
- X
- XNOTES:
- X The normal Amiga mouse has only two buttons, the Left and the Right
- X mouse buttons (LMB, RMB). A properly installed three-button mouse
- X is also supported.
- X
- X You must type commands in lower-case, except for text, which can be
- X either lower or upper case, and for upper-case alpha keys when
- X specifying keymaps (i.e. A and s-a are the same key). The
- X exception is the AMIGA qualifier key, which uses 'A' instead of
- X 'a'(Alt).
- X
- X Each key may be qualified with any combination of CTRL, ALT, SHIFT,
- X AMIGA, or any of the MOUSE buttons. With 6 qualifiers (7 if your
- X mouse has a middle button), you can assign up to 64 (128) different
- X maps to each physical key on the keyboard.
- X
- X The CAPS-LOCK, when lit, is equivalent to SHIFT only for Alpha keys.
- X
- X The AMIGA-ALT (aA) combination isn't very usable since Intuition
- X uses the sequence to duplicate a Mouse SELECT. Other AMIGA
- X sequences are used by intuition for mouse movement and other things.
- X Some other qualifier combinations may not be usable due to other
- X special sequences.
- X
- X Some keys must be mapped by their lower-case keycap. That is, to
- X map the '>' key (USA keyboard), you specify shift dot (s-.)
- X
- X
- X ***EXAMPLES:***
- X
- X tab tab
- X a-a ALT a
- X A-a AMIGA a
- X sA-a SHIFT AMIGA a
- X s-tab SHIFT tab
- X c-tab CTRL tab
- X ac-? ALT-CTRL ?
- X s-f5 SHIFT F5
- X nk0 Numeric Keypad 0
- X cs-nk0 CTRL SHIFT Numeric Keypad 0
- X L-lmb Left Mouse button pressed
- X L-mmove Mouse moved while left mouse button held down
- X LR-lmb left mouse button hit while right mouse button held down
- X s-. shift . ('>' for USA keyboards)
- X
- X ***************
- X
- XMAPPING MOUSE BUTTONS
- X
- X Mouse buttons serve both as QUALIFIERS and as KEYS. Thus, you can map
- X both normal keystrokes which require a mouse button to be held down:
- X
- X map L-a ((left button and an a))
- X
- X as well as the mouse keys themselves:
- X
- X map L-lmb ((left mouse key))
- X
- X note that you had to specify the left mouse button down qualifier L as
- X well as the left mouse button LMB.
- X
- X If you map the left mouse button, and also map a sequence such as left
- X mouse button + a:
- X
- X map L-lmb tomouse
- X map L-a ((hello))
- X
- X Note that the first mapping will always get executed even if you
- X intended L-a (that is, BOTH mappings would get executed). In order
- X to avoid confusion you might want to UNMAP the system default mapping
- X for the right mouse button (mapped to ICONIFY) if you wish to apply
- X combinations to the right mouse button.
- X
- X MOUSE MOVEMENT is mapped with one or more mouse qualifiers (L, R, M),
- X plus 'MMOVE' for the key. That is:
- X
- X map LR-mmove ((moving the mouse with both buttons held down))
- X
- X Or how bout capping the characters under the mouse while moving the
- X mouse?
- X
- X map LR-mmove (tomouse if cl (tlate -32))
- X
- X
- X
- XDEFAULT KEYMAPPINGS:
- X
- X All Printable Ascii keys mapped to their ascii equivalent. BS, DEL, UP,
- X DOWN, LEFT, RIGHT, TAB, S-TAB, and ENTER are mapped properly. These are
- X the default system keymappings.
- X
- X
- X map (a-c) (bcopy)
- X map (a-d) (bdelete)
- X map (a-down) (scrolldown)
- X map (a-l) (while cu (tlate +32 right))
- X map (a-m) (bmove)
- X map (a-r) (nextr)
- X map (a-s) (bsource)
- X map (a-u) (while cl (tlate -32 right))
- X map (a-up) (scrollup)
- X map (bs) (bs)
- X map (c-/) (escimm (find ))
- X map (c-]) (ref)
- X map (c-[) (ctags)
- X map (c-1) (goto block)
- X map (c-b) (block)
- X map (c-c) ()
- X map (c-del) (remeol)
- X map (c-down) (pagedown)
- X map (c-esc) (recall)
- X map (c-f) (reformat)
- X map (c-g) (escimm (goto ))
- X map (c-i) (insertmode on)
- X map (c-j) (join)
- X map (c-l) (wleft)
- X map (c-n) (next)
- X map (c-o) (insertmode off)
- X map (c-p) (prev)
- X map (c-q) (quit)
- X map (c-r) (wright)
- X map (c-s) (split first down)
- X map (c-u) (unblock)
- X map (c-up) (pageup)
- X map (c-w) (wordwrap toggle)
- X map (del) (del)
- X map (down) (down)
- X map (enter) (return)
- X map (esc) (esc)
- X map (f1) (escimm (insfile ))
- X map (f10) (saveold quit)
- X map (f2) (escimm (newfile ))
- X map (f3) (escimm (newwindow newfile ))
- X map (f6) (saveold iconify)
- X map (f7) (escimm (bsave ))
- X map (f8) (saveold escimm (newfile ))
- X map (f9) (saveold)
- X map (L-lmb) (tomouse)
- X map (L-mmo) (tomouse)
- X map (left) (left)
- X map (R-rmb) (iconify)
- X map (return) (return insline up firstnb down)
- X map (right) (right)
- X map (s- ) (( ))
- X map (s-del) (deline)
- X map (s-down) (bottom)
- X map (s-left) (first)
- X map (s-right) (last)
- X map (s-tab) (backtab)
- X map (s-up) (top)
- X map (sa-s) (unblock block block bsource)
- X map (tab) (tab)
- X map (up) (up)
- X
- X
- X
- X III
- X COMMAND SEQUENCES
- X
- XDME has a rich command set which allows you to embed commands within
- Xcommands, or specify multiple commands in a row. A command consists of a
- XKEYWORD followed by a FIXED number of arguments (0, 1, 2...). The argument
- Xdelimeter in DME is a SPACE. Therefore, to embed strings containing spaces
- Xas a single argument, you must surround the string with (string)
- X(backsinglequote-string-singlequote). TEXT to be written as if typed is
- Xalso specified via a string in backquote-quotes. For example:
- X
- X right right (hello) right right (hello) enter down
- X map f4 (right right) map f5 (left left)
- X map f4 ((hello))
- X
- XReiterating (because this is important!)... If a command expects ONE
- Xargument, then it really does expect a single argument, and any remaining
- Xarguments are thought to be the next command... so:
- X
- X map f4 right
- X -right is only one word, so no need
- X for ().
- X map f4 (right right)
- X -we want to map f4 to two rights... we
- X need the () or the second right will
- X not be part of the map.
- X
- X map c-del (repeat cright del)
- X -this is already implimented as REMEOL,
- X but shown here for clarity.
- X
- XSome arguments will eventually be fed through the command interpreter more
- Xthan once. The MAP command is a good example. When you execute a MAP
- Xcommand, the first run through the command interpreter installs the map
- Xstring minus a set of quotes. So, if you want to specify text, you must
- Xenclose the text in two sets of ((text)) because the map string gets passed
- Xthrough the command interpreter again when you hit the mapped key. Here
- Xare some more complex examples:
- X
- X map f4 (right right (hello) left left) *RIGHT*
- X map f4 right right hello left left *WRONG*
- X
- X map f4 (map f4 ((hello)))
- X -the first time you hit F4, it's command
- X is to re-map itself to the TEXT (hello).
- X (gads!).
- X
- X map c-i (repeat tr (( )))
- X -example of how to embed a space in a
- X map and repeat (goes through command
- X interpreter three times!).
- X
- X
- XAn easy way to fool around executing commands or making maps is either to
- Xuse the ESC key (which enters command mode), or a-S (alt-shift-s), which
- XEXECUTES the current DME line that the cursor is on.... so you can use DME
- Xto edit and test your new keymappings.
- X
- X
- X STRING VARIABLES
- X
- X String variables are replaced with their contents. Three specification
- X forms are allowed:
- X
- X $varname - varname can only consist of a-z,A-Z,0-9,-,_
- X $(varname) - anything not containing a '(' or ')'
- X $`varname' - anything not containing a '`' or '''
- X
- X Two special variables exist:
- X
- X filename - the current filename
- X scanf - the current scanf'd string (see SCANF below)
- X lineno - the current cursor line number (1 .. N)
- X column - the current cursor column number (1 .. N)
- X
- X Other variables cause a search of three variable domains to find the
- X contents. For example, if you give $DMEFONT:
- X
- X (1) An Internal variable named DMEFONT is searched for. Internal
- X variables are case sensitive. (see SET, UNSET)
- X
- X (2) An Enviroment variable name DMEFONT is searched for. Enviroment
- X variables are NOT case sensitive. (see SETENV, UNSETENV). The
- X 1.3 ENV: is used.
- X
- X (3) A DME keymap or menu definition named DMEFONT is searched for.
- X This allows you to say something like $sa-tab to insert the
- X contents of the shift-alt-tab keymap. (see MAP, UNMAP, and
- X MENU oriented commands).
- X
- X The reason for the other two forms of variable specifiction is to allow
- X one to access strangely named variables (with puncuation and other crap).
- X
- X SPECIAL NOTE: What is wrong with this command?
- X
- X repeat 100 (first ($myvar))
- X
- X What is wrong is that $myvar is evaluated BEFORE the repeat is
- X executed. myvar might contain characters that would confuse the
- X command specification when. That is, if myvar contained a '(' you
- X could get something like: repeat 100 (fist ((()) which is obviously
- X incorrect. By using \ you can cause $myvar to be evaluated at
- X loop-execution time rather than before:
- X
- X repeat 100 (first (\$myvar))
- X
- X These kinds of problems can also occur when you do keymaps... you
- X probably do not want to evaluate the variable at keymap-entry time,
- X but rather would want the variable evaluated at keymap-execution time.
- X
- X On the otherhand, this is perfectly allowable:
- X
- X set x (tlate +1)
- X repeat 100 ($x)
- X
- X Which executes the command (tlate +1) 100 times... By NOT surrounding
- X the variable with parens (depends on the situation), the variable is
- X executed rather than inserted as text.
- X
- X
- X SPECIAL CHARACTERS
- X
- X ^ is used to introduce a control character. For example, ^c would
- X embed a control-c. You cannot embed c-@ (ascii code 0).
- X
- X backslash \ is used to override special meanings. The next character
- X is overriden.
- X
- X map c-a ((^l)) -map control a to produce a control l
- X map c-a ((\\\^l)) -map control a to produce a "^l". The first
- X \ overides the second, and the third overides
- X the ^.
- X
- XCOMMAND LIST:
- X
- X (text) -enter text as if typed.
- X key -execute a keymap as a macro (example: c-a)
- X header-item -execute a menu item as a macro (example: Project-Save)
- X (case independant)
- X ADDPATH path -Add the specified symbolic directory to DME's special
- X search path (see REF and CTAGS).
- X ARPINSFILE -INSFILE filerequestor, only if ARP.LIBRARY installed
- X ARPLOAD -NEWFILE filerequestor, only if ARP.LIBRARY installed
- X ARPSAVE -SAVEAS filerequestor, only if ARP.LIBRARY installed
- X BACK -same as BS
- X BACKTAB -backward tab
- X BCOPY -copy block before cursor line
- X BDELETE -delete the block
- X BLOCK -Set start or end of block
- X BMOVE -move block before cursor line
- X BOTTOM -Move to Bottom of File
- X BS -backspace, (delete char to left of cursor)
- X BSAVE file -save the block to a file
- X BSOURCE -source current text block as if it were a script file
- X CHFILENAME name -change the name of the working file
- X CTAGS -search for the tag under the cursor (see below)
- X DEL -delete, (deletes char under cursor)
- X DELINE -delete line
- X DOWN -cursor down
- X DOWNADD -cursor down. If at bottom of text, add a line.
- X ESC -toggle manual command entry mode
- X ESCIMM arg -go into command entry mode prompting with a
- X predefined string.
- X EXECUTE comm -Execute a CLI command
- X FIND string -SET the search pattern and do a NEXT
- X FINDR s1 s2 -Set find and replace patterns and do one find/rep.
- X FINDSTR string -SET the search string pattern
- X FIRST -move to column 1
- X FIRSTNB -Move to first non-blank in line.
- X GOTO BLOCK -Goto the beginning of the marked block.
- X GOTO START -same as GOTO BLOCK. undefined if no block
- X GOTO END -goes to the END of the marked block. undef. if no blk.
- X GOTO [+/-]N -Goto an absolute or relative line number
- X HEIGHT N -set height in PIXELS for any new windows
- X ICONIFY -iconify the window
- X IF cnd act -IF/WHILE/IFELSE.. SEE BELOW
- X IFELSE cnd ifact elseact
- X IGNORECASE what -set case ignore for seaches. what = on, off, or toggle
- X INSERTMODE what -set INSERTMODE. what = on, off, or toggle
- X INSFILE name -insert a file into the current text.
- X INSLINE -insert line
- X JOIN -join next line to line at cursor
- X LAST -move one beyond the last non-space in a line.
- X LEFT -cursor left
- X LEFTEDGE N -set leftedge on the screen in PIXELS for any new window
- X MAP key map -map a key to a keymap
- X MARGIN N -set WordWrap and paragraph formatting margin
- X (related to WORDWRAP and REFORMAT)
- X MENUADD hdr item cmd -add menu item
- X MENUDEL hdr item -delete menu item
- X MENUDELHDR hdr -delete menu header
- X MENUCLEAR -delete entire menu
- X MENUON -enable menus (multiple calls are stacked)
- X MENUOFF -disable menus (multiple calls are stacked)
- X NEWFILE name -replace current text with new file
- X NEWWINDOW -open newwindow
- X NEXT -find next occurance of search pattern
- X NEXTR -find next occurance and replace
- X NULL -no operation
- X PAGEDOWN -pagedown a partial page (see PAGESET)
- X PAGESET n -n PERCENT (0 to 100). page step size relative to the
- X current number of rows in the window.
- X PAGEUP -pageup a partial page (see PAGESET)
- X PING n -set a text marker (0-9).
- X PONG n -move to a previously set text marker (0-9)
- X PREV -find previous occurance of search pattern
- X PREVR -find previous occurance and replace
- X PUSHMARK -push the currently marked block onto a stack and
- X unhighlight the block
- X POPMARK -pop the block stack and highlight the popped block
- X PURGEMARK -clear the mark stack
- X QUIT -quit
- X RECALL -recall most recently entered command. Must be used
- X from a keymap (c-esc).
- X REF -reference string under cursor (see below)
- X REFORMAT -reformat paragraph using the margin.
- X REMEOL -Remove text under and beyond the cursor.
- X REMPATH wild -Remove one or more symbolic directorys from DME's
- X special path... a */? wildcard is acceptable.
- X REPEAT cnt comm -SEE BELOW
- X REPSTR string -SET the replace string pattern
- X RESETTOGGLE N -clear toggle array entry N(0..31)
- X RESIZE cols rows-Resize current window. E.G: (resize 70 23)
- X RETURN -same as (FIRST DOWNADD)
- X RIGHT -cursor right
- X RX -ARexx macro, no args (RX macname)
- X RX1 -ARexx macro, one arg (RX1 macname arg1)
- X RX2 -ARexx macro, two args (RX2 macname arg1 arg2)
- X SAVEAS file -save current text under a different name (title
- X line name does not change)
- X SAVEMAP file -save user keymappings
- X SAVEOLD -save current text under current name
- X SAVESMAP file -save all keymappings, including system keymaps
- X SAVETABS on/off -Optimize file saves by crunching spaces to tabs.
- X The default is OFF.
- X SCANF ctlstr -scan the string at the current text position (C scanf)
- X example: (scanf %s) SEE BELOW
- X SCREENBOTTOM -Move cursor to the bottom of the screen.
- X SCREENTOP -Move cursor to the top of the screen
- X SCROLLUP -Scroll up without moving cursor
- X SCROLLDOWN -Scroll down without moving cursor
- X
- X SET var str -create/modify an internal variable (access w/ $)
- X SETENV var str -create/modify an enviroment variable (1.3 ENV:)
- X SETFONT font sz -Set the window's font. ex: (setfont topaz.font 11)
- X SETPARCOL col -Set the left margin for word wrap mode paragraphing.
- X SETTOGGLE N -set toggle array entry N (0..255)
- X SOURCE file -source a script file. '#' in first column for comment
- X SPLIT -Split line at cursor
- X SWAPMARK -PUSHMARK, swap top two marks on stack, POPMARK
- X TAB -forward tab
- X TABSTOP N -Set tab stops every N. does not effect text load
- X TLATE [+/-]N -translate character by +N or -N, or set character
- X to exactly N if no + or -. (e.g. TLATE +65 TLATE 3)
- X TMPHEIGHT N -set window height for next window only, pixels
- X TMPWIDTH N -set window width for next window only, pixels
- X TOGGLE N -flip toggle array entry N (0..255) (See IF)
- X TOMOUSE -moves cursor to mouse position
- X TOP -Move to Top of File
- X TOPEDGE N -set topedge in the screen in PIXELS for any new window
- X UNBLOCK -clear the block markers for the current window
- X UNDO -undo current line (must be mapped to a key to work)
- X UNMAP key -unmap a key
- X UP -cursor up
- X UNSET var -delete an internal variable
- X UNSETENV var -delete an enviroment variable
- X WHILE cnd act -(see below)
- X WIDTH N -set width in PIXELS for any new window
- X WLEFT -move to beginning of previous word. If in the
- X middle of a word, move to beginning of current word.
- X WORDWRAP on/off/toggle
- X -Word Wrap mode (related to MARGIN)
- X WRIGHT -move to beginning of next word
- X
- X
- X -------------------------------------------------------------
- X ------------- More Info on Complicated Commands -----------------
- X -------------------------------------------------------------
- X
- X MENUOFF/ON -This command will enable/disable menus. Users
- X who have a whole bunch of MENUADD commands in
- X their .EDRC should note that disabling menus at
- X the beginning will speed up the MENUADD commands.
- X Then reenable menus at the end. These calls are
- X stackable in that if you call MENUOFF, say, twice,
- X it will take two MENUON commands to restore
- X menus. The reverse is not true.
- X
- X CTAGS (c-[) -(1.30B and beyond) Compatible with Aztec's CTAGS
- X program. This command searches for the subroutine
- X name under the cursor in the associated tags file
- X ("tags" in the directory holding the file currently
- X being edited). Also, the file "tags" in directories
- X specified by the special DME path (see ADDPATH and
- X REMPATH) will be searched.
- X
- X If the tag is found, it loads the file the subroutine
- X resides in if neccesary, then WindowToFront()'s the
- X window, ActivateWindow()s it, and GOTO's the line
- X where the subroutine starts. The search within the
- X source file is anchored to the left column. If the
- X file is already loaded, it is not reloaded.
- X
- X This enables a programmer to quickly trace subroutines
- X over an arbitrary number of files.
- X
- X The tags file contains one or more lines of the following
- X format:
- X
- X subroutine-name file-name /^search-pattern
- X (that's a slash and a carrot, then the pattern)
- X
- X -- EXAMPLE of 'TAGS' file:
- X setpen cmd1.c /^setpen(
- X do_up cmd1.c /^do_up(
- X --
- X
- X SPECIAL NOTE: CTAGS will work even if you are not in
- X the directory containing the file. You can thus place
- X a tags file in the directory containing the files it
- X references, and the filenames WITHIN the tags file need
- X not be a full path.
- X
- X REF (c-]) -(1.28d and beyond). This is a very powerful new
- X command that allows you to bring up a reference to
- X a keyword with a single keystroke. This is useful for
- X programmers who have on-line documentation or fully
- X commented include files. DME opens a window just big
- X enough to fit the reference.
- X
- X NOTE: The new CTAGS command may be more suited to
- X your application.
- X
- X The reference keyword is the alpha-numeric string
- X currently under the cursor. REF will search the
- X file DME.REFS in the directories listed by the
- X special DME path (see ADDPATH and REMPATH). The
- X file must be built by the user and each line has the
- X following format:
- X
- X (keyword) (nolines/endstring) (file) (searchstr/##seekpos)
- X
- X Surrounding the keywords with `' or () is optional if
- X the keyword does not contain spaces.
- X
- X keyword -keyword under cursor
- X nolines/ends-either a number (the number of lines
- X in the reference) or a string denoting
- X the end of the reference when found.
- X file -the file containing the reference
- X material
- X searchstr/##-search string in file that indicates
- X the beginning of the reference, or
- X two hashes (##) and the seek position
- X in decimal (like ##2343). The latter
- X method is used mainly for reference-
- X generator programs.
- X
- X Upon finding a successful keyword match the specified
- X file is openned and the seach string searched for. If
- X a seek position was specified no search is made and a
- X seek is made to the beginning of the reference. If
- X found, the indicated number of lines (if a number
- X is specified for <nolines/ends>) or until a match with
- X the endstring (if a string was specified) will be
- X placed in a temporary file and a new DME window
- X brought up. The temporary file is then deleted.
- X
- X When looking for matches, the compare is anchored at
- X the beginning of each line in the file. Thus, any
- X spaces in front of the string in the file must be
- X duplicated.
- X
- X T: must be assigned to a temporary directory, usually
- X RAM: See the included example DME.REFS file. The
- X most common things referenced are the autodocs and
- X commented include files.
- X
- X Some modification of the included DME.REFS.* files may
- X be required due to differences in include file and
- X autodoc format.
- X
- X SCANF ctlstr -This is equivalent to the C scanf() function with the
- X restriction that only one conversion is allowed, that
- X conversion being a string. Thus:
- X
- X scanf %s will place the string under the
- X cursor in the variable $scanf
- X
- X scanf %4s The first four chars of the string.
- X
- X scanf %[0123456789]
- X will scan the string while it contains
- X specified chars (e.g. scan a number)
- X
- X scanf %[~,] will scan the string until it finds
- X a ','.
- X
- X The variable $scanf may be used as an argument in any
- X command. Example: (insfile $scanf).
- X
- X NOTE: If using $scanf in a macro, you probably want
- X to precede it with a \ to prevent it from being
- X evaluated at macro-creation time.
- X
- X
- X REPEAT N arg -Repeat (arg) N times. Apart from being a number, N
- X can also be one of:
- X
- X line Current line # (lines begin at 1)
- X lbot #lines to the bottom, including current line
- X cleft column # (cols begin at 0)
- X cright #chars to eol, including current char under cursor
- X tr #char positions to next tab
- X tl #char positions to next back tab
- X
- X Certain commands can abort a REPEAT loop.
- X Specifically, any FIND[R], NEXT[R], or PREV[R] in which
- X the search string is NOT found will abort a REPEAT.
- X Most operations which can go out of bounds, such as
- X UP, LEFT, RIGHT, DOWN, also abort a repeat.
- X
- X Specifying -1 as N causes REPEAT to go on forever
- X (well, actually, 0xFFFFFFFF times) or until an abort.
- X
- X IF [!]condition arg
- X WHILE [!]condition arg
- X IFELSE [!]condition arg else arg
- X
- X If the specified condition is true, execute the argument. For
- X WHILE, the argument is executed until the condition is false
- X (be careful!).
- X
- X the optional '!' inverts the logic.
- X
- X Conditions:
- X
- X
- X # if toggle entry # is SET. there are 256 toggles (0..255)
- X t if On line 1
- X b if On last line
- X l if At column 0
- X r if At end of line (spaces below and beyond)
- X m if Text has been modified
- X i if in insert mode
- X x[<=>]# if column position (starts at 1) is (any OR combo of
- X <, =, or >) than some number. Example: x<=20
- X y[<=>]# if Line number (starts at 1) is (same as for x)
- X cl character under cursor is lower case alpha
- X cu character under cursor is upper case alpha
- X ca character under cursor is alpha-numeric
- X cn character under cursor is numeric
- X c[<=>]# character under cursor is ascii code # (# in decimal)
- X optional conditionals as in 'x' and 'y'.
- X cb cursor within a block
- X
- X Example: simulating an insert mode toggle: ALT-i (not CTL-i)
- X
- X map a-i (ifelse 0 (toggle 0 insertmode OFF) (toggle 0 insertmode ON))
- X
- X Example: while lower case, map to upper case and move right.
- X
- X map c-U (while cl (tlate -32 right))
- X
- X Example: Search/Replace all of text.
- X
- X map c-R (escimm (findstr ) escimm (repstr ) repeat -1 nextr)
- X
- X if c<32 ((char under cursor is smaller than 32))
- X if c<>32 ((char under cursor is not equal to 32))
- X while !b down
- X
- X
- X IV
- X FILE PARTICULARS
- X
- XNo Matter what you set internal tabs to, tabs in disk files will be 8.
- XThis allows you to use your favorite tabs stops (mine are 4) and still
- Xhave your disk files compatible with TYPE, a printer, etc... DME by
- Xdefault doesn't bother to optimize when writing out files and simply uses
- Xspaces. If you (SAVETABS on) before saving (or in your S:.EDRC, etc...),
- XDME will attempt to optimize the file by placing TABS in appropriate
- Xplaces. DME will not place any TABS after the first single, back, or
- Xdouble quote is encountered in a line. If this does not cover every
- Xsituation in your particular application that you want to be *sure* no tabs
- Xwill occur in sensitive sections, then you should not use (SAVETABS on).
- X
- XIt should be noted that since DME removes spaces at the end of the line,
- Xediting UUENCODED ascii files will not work for uuencoded lines which end
- Xwith a space. The nominal fix is to add an extra character after each
- Xuuencoded line (anything) in the proper column, which is ignored by the
- XUUDECODE program.
- X
- XThe command to save the current document under the default name is SAVEOLD,
- X*not* SAVE. SAVE is not a valid command. This is to prevent people who
- Xhave not read the documentation from assuming 'save' takes an argument (and
- Xscrewing up their work). SAVEOLD does NOT take an argument, SAVEAS does.
- X
- XSAVEOLD/SAVEAS do not automatically backup the destination file. If you
- Xare working in an enviroment where you are worried about ensuring a viable
- Xcopy can be recovered if your Amiga crashes in the middle of the save, you
- Xcan write a macro to save the file into two places. Usually, people backup
- Xtheir working disks so this is not neccesary.
- X
- XWorkbench Support: If DME is run from the workbench, it will automatically
- Xconstruct an icon file when you save a document. If run from a CLI, no
- Xicon file is generated.
- X
- X V
- X WORKBENCH SUPPORT
- X
- XDME V1.26 and beyond support the workbench in the following way: (1) you
- Xcan click on the DME icon to bring up DME with the file "unnamed". (2) you
- Xcan select one or more standard ascii documents which have DME as the
- Xdefault tool. If DME has no knowlege of a text icon, it uses its own.
- XCommand line arguments are passed to DME via the tooltypes entries for
- XDME's application icon or via individual document icons. The following
- Xformat is used: (This is a hack, no?)
- X
- X ARG=flag
- X
- X See the OVERVIEW section for allowed flags. Only one argument per line
- X is allowed (sorry). The tooltypes for the application icon are
- X processed first, then the tooltypes for each document icon are
- X processed before each file is loaded.
- X
- X ARG= -t10
- X ARG= -l10
- X
- X Note: the 'config' program may be used to modify an executable and
- X set the default window size and attributes.
- X
- X VI
- X REVISION SUMMARY
- X
- XV????
- X - didn't restore pr_ConsoleDevice after an execute!
- X
- XV1.39
- X - NEW COMMAND, 'setparcol'. Set paragraph left margin for reformat
- X command and word wrap mode. The default is -1 (same as original
- X format), else a column number.
- X
- X - case sensitive bug fixed.. used to always be case insensitive
- X no matter which option you chose.
- X
- X - search-and-replace bug fixed... cursor positioned to END of
- X replaced string to prevent improper operation when replace
- X string is a superset of the search string.
- X
- X - Menus more compact.
- X
- XV1.38
- X - Removed fix in 1.37, use '1.4libpatch' if running under 1.4A16.
- X
- X - FIXED AREXX BUG... DMe would crash if ARexx was installed for
- X V's 1.37 and 1.36
- X
- XV1.37
- X - 1.4a16 crashes on OpenLibrary() where the library does not
- X exist. Doesn't try to open arex if running under 1.4
- X (for now, this is a temporary stopgap)
- X
- XV1.36
- X -Removed dres.library IPC. Removed dres.library requirement. (ARexx IPC
- X still in of course). Source now compilable under Lattice C and Manx C.
- X
- XV1.35a
- X -can change block pen now and DME updates the title using the correct
- X color.
- X
- XV1.35
- X -Bug in 1.34 fixed, would only work if dres.library was installed
- X OOOPPS.
- X
- XV1.34
- X -New variables $fpath and $fname have been added. $fpath is the path
- X part of the current filename, including trailing / or : (if any).
- X $fname is anything after that. For example:
- X
- X FILE fpath fname
- X s:.edrc s: .edrc
- X blah blah (path = "")
- X /poof / poof
- X
- X
- XV1.33 RELEASE
- X -You can now run <nil: >nil: DME and close the console window that
- X you ran it from. The execute command now requires the NULL: device
- X to be mounted or an error will occur.
- X
- X -space -> tab conversion does not take place after the first control
- X character (<32), as well as the first quote ("), open paren ((), or
- X single quote (') that it didn't before.
- X
- XV1.32 (small fixes)
- X -Fixed workbench bugs, DME would exit if it could not find the
- X executables disk object. No longer does so.
- X
- XV1.31 RELEASE
- X -Added new variables $lineno and $colno
- X -Added CD command, ARPLOAD automatically CD's to DIR part of
- X requester.
- X -Added IPC support (my own ipc)
- X -Fixed bug in BMOVE (when the source block is an entire file)
- X
- XV1.30C LIMITED
- X -MAJOR! Macros, Internal variables, and ENV: enviroment variables
- X may be specified with $varname, $(varname), or $`varname'.
- X
- X -New commands: SET, SETENV, UNSET, UNSETENV (variable support)
- X
- X -REFS window bug fixed I hope (made window slightly too small).
- X -SAVE[S]MAP bug fixed for space mappings
- X -CTAGS doesn't modify the window title if the window is iconified
- X (allows you to make the following map: map <somemap> (iconify ctags)
- X
- X
- XV1.30B Limited release
- X -Kim fixed a bug in splitpath
- X -added CTAGS command... support for Aztec's CTAGS program
- X -added ADDPATH command... special directory paths for DME
- X -added REMPATH
- X
- X REFS no longer searches fixed directories, but looks at the
- X ADDPATH directories. CTAGS also looks at the ADDPATH
- X directories. CTAGS supports arbitrary directory specifications
- X and is intelligent about where to look for the TAGS file.
- X
- X
- XV1.30 RELEASE
- X -a couple small bugs fixed
- X -fixed text bug that sometimes overwrites the right border
- X -added new commands
- X SETFONT (for all of text, static fonts only)
- X IGNORECASE (for searches)
- X -added new commands (AREXX support, Kim DeVaughn)
- X RX, RX1, RX2
- X -added new commands (by Kevin Speghetti)
- X PUSHMARK, POPMARK, SWAPMARK, PURGEMARK block marker stack
- X PING, PONG text markers (0-9)
- X
- X note: block marks on the stack, ping and pong, do not track text
- X changes (bug).
- X
- X -Many commands will now work while the text window is iconified
- X without having to uniconify it.
- X
- XV1.29E
- X -Fixed low memory bug in do_bomve() again.
- X -Fixed arp file requestor problems.
- X -added ARPINSFILE command.
- XV1.29D
- X -Fixed low memory bug in do_bmove()...
- XV1.29C
- X -highlighted icon window if file modified
- XV1.29B
- X -INLINE FILENAME:
- X added $filename variable. $scanf and $filename can now be embedded
- X anywhere on the command line.
- X - ^x added (control-character), so you do not have to embed actual
- X control characters in your macros.
- X - \ overide added (\^x) produces "^x" instead of control-x, etc...
- X
- XV1.29 RELEASE
- X
- X -Foreign keyboards supported better.
- X -Iconify window is activated rather than not activated.
- X -can keymap keys which normally produce nothing.
- X -blocks are displayed in a different color
- X -can now move/copy across windows
- X -can now resize window while file loading
- X -new commands ARPLOAD ARPSAVE (uses ARP filerequestor if arp.library)
- X MENUADD MENUDEL MENUDELHDR MENUCLEAR MENUOFF MENUON
- X
- X minor bugs fixed, major remodeling of the source (this is what I
- X use my vacation for!)
- X
- X menus: the right mouse button may be mapped only if there is no
- X menu, Else is used as the menu selector. NOTE! It is much faster
- X to surround a set of MENUADD commands in a source file with
- X MENUOFF at the beginning and MENUON at the end. You can also specify
- X menu items as macros in other commands (example: project-save)
- X
- XV1.28h SMALL RELEASE references work better
- X
- XV1.28g SMALL RELEASE Fixed NK0 bug in 1.28f plus keymap problems in 1.28f
- X
- XV1.28f RELEASE
- X Fixed macro bug created in 1.28e... could not specify macros on the
- X command line.
- X
- XV1.28e INTERNAL/BETA
- X New Commands: REF (c-]) -cross reference the word under the
- X cursor and bring up a new window
- X containing a description for that
- X word. See docs above.
- X
- X -The keymapping has been fixed and should now work on any foreign
- X keyboard.
- X -MAJOR ADDITION: () may be used instead of `' to enclose commands.
- X One can enclose the other ... that is, to get the "'" character you
- X can say (this is a charlie's day).
- X
- XV1.28c RELEASE
- X New Commands: CHFILENAME -change default filename for a window
- X RECALL (c-esc) -recall command line (e.g. you make a
- X mistake). Must be used from a keymap,
- X default is c-esc.
- X
- X SCANF -C scanf (single string only). Extract
- X strings from the text for use in any
- X arbitrary command.
- X
- X Command Parser: $scanf -as an argument by itself is recognized
- X to be the extracted string from scanf.
- X Currently, the variable name (after
- X the dollar) can be anything since only
- X one variable exists, but use '$scanf'
- X for future compatibility.
- X
- X -Many Bug fixes (mainly benign bugs)
- X -^C (CONTROL C) now recognized when typed in a window. c-c is mapped
- X to () = no action.
- X -Please look at the revised default keymappings listed in these docs.
- X
- X
- XV1.28 LIMITED RELEASE
- X New Commands : SCROLLUP (a-up)
- X SCROLLDOWN (a-down)
- X Modified Cmds: ESCIMM
- X The execution of commands specified by an ESCIMM is blocked until
- X the user hits return on the ESCIMM command line.
- X
- X BCOPY
- X No longer unblocks the block.
- X
- X -Title bar status line no longer blinks when it changes
- X -Key releases no longer effect operation
- XV1.27 RELEASE
- X -macros run about 20% faster due to hashing of the command table
- X -Maximum # of toggles raised to 256 (see IF/WHILE)
- X -small fixes to the code (nothing major)
- X -child windows inherit tab stops, insert mode, and wordwrap mode
- X -MOUSE BUTTONS AND MOVEMENT CAN NOW BE MAPPED
- X -New Commands: ICONIFY (used to be hardwired. Is now a command)
- X -Extended Commands: GOTO (GOTO END of block)
- XV1.26 Beta, minimal Release
- X -Workbench support
- X -New Command: EXECUTE
- XV1.25 RELEASE
- X -BSAVE does NOT UNBLOCK after saving (switch in functionality yet again)
- X -various bugs fixed (IF, tabs on file save)
- X -New Commands: MARGIN, REFORMAT, WORDWRAP, RESIZE,
- X TOPEDGE, LEFTEDGE, WIDTH, HEIGHT
- X -Command line options added for setting the window size and an optional
- X specified script file (when specified, local .EDRC not sourced).
- X
- X -Enhanced Commands: IF ..more control with conditions, addition of
- X a couple more specifications.
- X JOIN .. functionality slightly changed
- X -keymaps may now be used as macros in other commands. (macros)
- X -New keymaps added to the default set.
- X -Mouse movement cleaned up a little.
- X
- XV1.24 Internal
- X
- XV1.23 RELEASE
- X -S:.EDRC now sourced instead of C:.EDRC
- X -User keymappings now work in COMMAND mode (when you hit ESC).
- X -You can now map the Amiga keys ('A' for Amiga, since 'a' is alt).
- X -Enhanced Commands: IF/IFELSE/WHILE (optional '!' in front of cond)
- X new condition 'cb' 'character is in selected block'
- X GOTO block (goto beginning of block)
- X -NewCommands: PAGESET SAVETABS
- X -Writing TABS (always 8) out to disk to save space now supported.
- X
- XV1.22 RELEASE (BUF FIXES FROM 1.20)
- X -'newfile' fixed
- XV1.21 RELEASE (BUG FIXES FROM 1.20)
- X -iconify and window handling fixed
- X -left mouse button now tracks the mouse.
- XV1.20 RELEASE
- X -bug fixes: bsave now unmarks the block, bdelete now sets 'modified' flag.
- X (other small fixes).
- X -enhancements: overwrite mode status indicator, find, find-replace now
- X completely implemented (yahhoo!!!)
- X -changed commands: FIND NEXT PREV: no longer loop back to the top of
- X file or top->bottom in the case of PREV. DELINE will now delete
- X text on the line if there is only one line of text.
- X -enhanced commands: GOTO REPEAT
- X -new commands: SAVEMAP SAVESMAP TOGGLE SETTOGGLE RESETTOGGLE TLATE
- X IF IFELSE WHILE BSOURCE
- X FINDSTR REPSTR FINDR NEXTR PREVR
- X NEWWINDOW
- X -new keymappings: (see a-s, a-S, f3)
- X -window iconification with mouse menu button.
- X
- X
- XV1.12 RELEASE
- X -cursor is now pen #3 rather than #1.
- X -changeover to AZTEC C, smaller executable.
- X -now maps shift space to a space.
- X -new commands: REMEOL, WLEFT, WRIGHT
- X -display bug fixes (SPLIT)
- X -FIND/PREV/NEXT will now abort a REPEAT if string not found.
- X
- XV1.11 RELEASE NOTES
- X -Bug fixes (mainly graphical mistakes).
- X -User keymappings are disabled in command mode (so you can unmap
- X single ascii characters you may have mapped).
- X -Illegal key combinations no longer give garbage (e.g. ALT-CURSOR-DOWN)
- X you can, of course, still map them to anything you wish.
- X -Save now checks for error conditions on write.
- X -Uses Default Console Keymap (i.e. no longer assumes USA)... but there
- X *is* some stangeness.
- X
- XV1.00 RELEASE NOTES
- X -has find, but no replace function
- X -assumes USA keyboard (fixed 1.11)
- X -disk files written out use spaces instead of tabs&spaces
- X
- X
- X VII
- X COMPILING
- X
- XDME now compiles under either Manx C or Lattice C (V5.02 and beyond).
- Xdres.library is no longer required.
- X
- END_OF_FILE
- if test 44056 -ne `wc -c <'man/dme.doc'`; then
- echo shar: \"'man/dme.doc'\" unpacked with wrong size!
- fi
- # end of 'man/dme.doc'
- fi
- echo shar: End of archive 14 \(of 16\).
- cp /dev/null ark14isdone
- MISSING=""
- for I in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 ; do
- if test ! -f ark${I}isdone ; then
- MISSING="${MISSING} ${I}"
- fi
- done
- if test "${MISSING}" = "" ; then
- echo You have unpacked all 16 archives.
- rm -f ark[1-9]isdone ark[1-9][0-9]isdone
- else
- echo You still need to unpack the following archives:
- echo " " ${MISSING}
- fi
- ## End of shell archive.
- exit 0
- --
- Submissions to comp.sources.amiga and comp.binaries.amiga should be sent to:
- amiga@cs.odu.edu
- or amiga@xanth.cs.odu.edu ( obsolescent mailers may need this address )
- or ...!uunet!xanth!amiga ( very obsolescent mailers need this address )
-
- Comments, questions, and suggestions should be addressed to ``amiga-request''
- (please only use ``amiga'' for actual submissions) at the above addresses.
-